package com.example.order.service;

import com.example.common.domain.PageResult;
import com.example.order.domain.dto.CreateOrderDTO;
import com.example.order.domain.dto.OrderListDTO;
import com.example.order.domain.po.Order;
import com.example.order.domain.vo.OrderListVO;
import com.example.order.domain.vo.OrderVO;

import java.util.List;

public interface OrderService {
    /**
     * 创建订单
     * @param createOrderDTO
     * @return
     */
    Long createOrder(CreateOrderDTO createOrderDTO);

    /**
     * 获取订单详情
     * @param id
     * @return
     */
    OrderVO getOrderDetail(Long id);

    /**
     * 支付订单
     * @param orderId
     */
    void payOrder(Long orderId);

    /**
     * 确认收货
     * @param orderId
     * @return
     */
    OrderVO receiveOrder(Long orderId);

    /**
     * 删除订单
     * @param ids
     */
    void deleteOrder(Long []ids);

   /**
     * 获取订单列表
     * @param page
     * @param pageSize
     * @param status
     * @return
     */
    PageResult<OrderListVO> getOrderList(Integer page,Integer pageSize,Integer status);

    /**
     * 取消订单
     * @param orderId
     */
    void cancelOrder(Long orderId);
}
